home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 2004 #11
/
Amiga Plus CD - 2004 - No. 11.iso
/
AmiSoft
/
Misc
/
emu
/
p-interp.lha
/
p-interp-0.5
/
psystem.h‾
< prev
next >
Wrap
Text File
|
2001-05-20
|
4KB
|
125 lines
/*
P-Code interpreter (to run the apple pascal system)
Copyright (C) 2000 Mario Klebsch
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
$Log: psystem.h,v $
Revision 1.3 2001/05/20 20:29:02 mario
Doppelter Prototyp gelöscht
Revision 1.2 2001/05/20 13:12:02 mario
CVS-Idents und Logs eingefügt
*/
typedef unsigned char byte;
typedef unsigned short word;
typedef signed short Integer;
#define NUMBER(a) (sizeof(a)/sizeof(a[0]))
word Pop(void);
void Push(word Value);
void XeqError(word err);
void ProcessNative(word JTab);
void IoError (word Result);
void UnitRead (word Unit, word Addr, Integer AddrOffset,
word Len, word Block, word Mode);
void UnitWrite (word Unit, word Addr, Integer AddrOffset,
word Len, word Block, word Mode);
void UnitClear (word Unit);
void UnitStat (word Unit, word Addr, Integer AddrOffset, word Dummy);
word UnitBusy (word Unit);
void UnitWait (word Unit);
void panic(char *Msg, ...);
void warning(char *Msg, ...);
void XeqError(word err);
void CspIdSearch(word BufPtr, word Arg2Ptr);
word CspTreeSearch(word TokenBuf, word ResultPtr, word NodePtr);
extern word Syscom;
#define SYSCOM_SIZE 170
#define IORSLT WordIndexed(Syscom,0)
#define XEQERR WordIndexed(Syscom,1)
#define SYSUNIT WordIndexed(Syscom,2)
#define BUGSTATE WordIndexed(Syscom,3)
#define GDIRP WordIndexed(Syscom,4)
#define BOMBP WordIndexed(Syscom,5)
#define STKBASE WordIndexed(Syscom,6)
#define LASTMP WordIndexed(Syscom,7)
#ifdef APPLE_1_3
#define BOMBPROC WordIndexed(Syscom,8)
#define BOMBSEG WordIndexed(Syscom,9)
#else
#define JTAB WordIndexed(Syscom,8)
#define SEG WordIndexed(Syscom,9)
#endif
#define MEMTOP WordIndexed(Syscom,10)
#define BOMBIPC WordIndexed(Syscom,11)
#ifdef UCSD_I_3
#define EXTENSION0 WordIndexed(Syscom,12)
#define EXTENSION1 WordIndexed(Syscom,13)
#define EXTENSION2 WordIndexed(Syscom,14)
#define EXTENSION3 WordIndexed(Syscom,15)
#define EXTENSION4 WordIndexed(Syscom,16)
#define EXTENSION5 WordIndexed(Syscom,17)
#define EXTENSION6 WordIndexed(Syscom,18)
#define EXTENSION7 WordIndexed(Syscom,19)
#define EXTENSION8 WordIndexed(Syscom,20)
#define EXTENSION9 WordIndexed(Syscom,21)
#define EXTENSION10 WordIndexed(Syscom,22)
#define EXTENSION11 WordIndexed(Syscom,23)
#define EXTENSION12 WordIndexed(Syscom,24)
#define EXTENSION13 WordIndexed(Syscom,25)
#define EXTENSION14 WordIndexed(Syscom,26)
#else
#define HLTLINE WordIndexed(Syscom,12)
#define BRKPTS0 WordIndexed(Syscom,13)
#define BRKPTS1 WordIndexed(Syscom,14)
#define BRKPTS2 WordIndexed(Syscom,15)
#define BRKPTS3 WordIndexed(Syscom,16)
#define RETRIES WordIndexed(Syscom,17)
#define EXTENSION0 WordIndexed(Syscom,18)
#define EXTENSION1 WordIndexed(Syscom,19)
#define EXTENSION2 WordIndexed(Syscom,20)
#define EXTENSION3 WordIndexed(Syscom,21)
#define EXTENSION4 WordIndexed(Syscom,22)
#define EXTENSION5 WordIndexed(Syscom,23)
#define EXTENSION6 WordIndexed(Syscom,24)
#define EXTENSION7 WordIndexed(Syscom,25)
#define EXTENSION8 WordIndexed(Syscom,26)
#endif
#define LOWTIME WordIndexed(Syscom,27)
#define HIGHTIME WordIndexed(Syscom,28)
#define MISCINFO WordIndexed(Syscom,29)
#define CRTTYPE WordIndexed(Syscom,30)
#define XRTCTRL WordIndexed(Syscom,31)
#define CRTINFO WordIndexed(Syscom,37)
#define SEG_ENTRY_LEN 3
#define SEG_UNIT(s) WordIndexed(Syscom, 48 + SEG_ENTRY_LEN*(s))
#define SEG_BLOCK(s) WordIndexed(SEG_UNIT(s),1)
#define SEG_SIZE(s) WordIndexed(SEG_UNIT(s),2)